import logging.handlers
import logging
from config import BDSE_PATH


def init_log_config(filename, when, interval, backupCount):
    # 1. 创建日志器对象
    logger = logging.getLogger()
    # 2. 设置日志打印级别
    logger.setLevel(logging.DEBUG)
    # 3.1 创建  输出到控制台  处理器对象
    st = logging.StreamHandler()
    # 3.2 创建  输出到日志文件  处理器对象
    fh = logging.handlers.TimedRotatingFileHandler(BDSE_PATH + f"/log/{filename}", when=when, interval=interval,
                                                   backupCount=backupCount, encoding="utf-8")
    # 4. 创建  日志输出格式
    fmt = "%(asctime)s, %(levelname)s, [%(filename)s(%(funcName)s:%(lineno)d)] - %(message)s"
    formatter = logging.Formatter(fmt)
    # 5.1 日志信息格式  设置给  控制台
    st.setFormatter(formatter)
    # 5.2 日志信息格式  设置给  日志文件
    fh.setFormatter(formatter)
    # 6.1 给日志器对象  添加 控制台处理器
    logger.addHandler(st)
    # 6.2 给日志器对象  添加 日志文件
    logger.addHandler(fh)


if __name__ == '__main__':
    init_log_config(filename="a.log", when="midnight", interval=1, backupCount=3)
    logging.debug("p j jkj ")
